弾幕 最強のシューティングゲームを作る!
https://gyazo.com/749ff5f1257b4dab7f17b53e6b3859c3
C++での実装例だが、アルゴリズムや弾幕パターンは他の言語でも参考になる シューティングゲームとは?
シューティングゲームの構成要素
ゲームはなぜ動くのか?
ゲームプログラムのタイミング
移動と描画を分離する
当たり判定処理とは?
開発環境
ゲームライブラリ
ゲーム本体
移動処理
描画処理
入力の読み取り
...など。
STAGE 2 キャラクターを動かす
キャラクターを動かすには?
クラスを使ってキャラクターを実装する
派生クラスを使ってキャラクターを実装する
仮想関数のオーバーライド
クラスの階層構造
キャラクターの生成
キャラクターの削除
生成と削除を繰り返すと…?
生成と削除の繰り返しに強いメモリ管理手法
タスクとタスクリスト
タスクリストの初期化
タスクの生成
タスクの削除
移動物体のクラス
タスクイテレータ
当たり判定処理
自機のクラス
自機の移動
画面の座標系
敵のクラス
弾のクラス
タスクリストの生成
...など。
STAGE 3 渦巻弾のバリエーション
方向弾
渦巻弾
多方向渦巻弾
両回転渦巻弾
旋回加速渦巻弾
パラメータ調整の迅速化
...など。
STAGE 4 n-way弾のバリエーション
n-way弾
円形弾
旋回加速円形弾
密集n-way弾
狙いn-way弾
チョイ避け
切り返し
回転避け
間欠狙いn-way弾
ランダムn-way弾
ランダム円形弾
回転n-way弾
回転n-way弾の回転避け
波状n-way弾
波状円形弾
...など。
STAGE 5 弾の組み合わせ
狙い弾
円形弾+狙い弾
領域弾
ワインダー
直線弾
n-way直線弾
狙い直線弾
拡散弾
ランダム拡散弾
追い越し弾
白黒弾
白黒渦巻弾
白黒ランダムn-way弾
攻撃パターンを変化させる
...など。
STAGE 6 変わった弾
誘導弾
単純誘導弾
制約誘導弾
任意の弾を撃つ敵
密集偶数弾
軌跡弾
誘導敵+軌跡弾
空隙弾
図柄弾
スロー
設置弾
渦巻設置弾
星型設置弾
星型再設置弾
いろいろな弾幕を作るために
...など。